package com.stone.boot.pipeline.domain.vo;

import com.stone.starter.core.constant.BaseConstants;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

/**
 * 流程器节点VO
 *
 * @author Mr_wenpan@163.com 2021/8/4 5:32 下午
 */
@Data
public class PipelineNodeVO {
    /**
     * 节点ID
     */
    private Long nodeId;
    /**
     * 策略类型
     */
    private String strategyType;
    /**
     * 当前节点
     */
    private String curAction;
    /**
     * 下一个节点
     */
    private String nextAction;
    /**
     * 当前节点描述
     */
    private String curDescription;

    public String uniqueKey() {
        return uniqueKey(curAction, strategyType);
    }

    /**
     * 将当前节点和决策类型用逗号拼接，作为唯一key
     */
    public static String uniqueKey(String curAction, String strategyType) {
        return curAction + BaseConstants.Symbol.COMMA + StringUtils.upperCase(strategyType);
    }
}